package PDFd.ClientLibrary;


/**
* <p>Title: IRenderEngine</p>
* <p>Description: Allows the the image to be rendered 
* into a PNG </p>
* @author Matt, Tom, Andrew, Kong
* @email matt.mckay@my.uwrf.edu,tom.florin@my.uwrf.edu,
* andrew.kathan@my.uwrf.edu,kong.xiong-1@my.uwrf.edu
* @date December 1st,2011*/
public interface IRenderEngine {
	/**
	 * Add a PDF to the render engine to be processed in the future
	 * @param f The PDF to process
	 * @return The UUID representing this file. 
	 */
	public String addPDF(byte[] f);
	/**
	 * Renders a previously added PDF (Identified by a UUID) into a PNG
	 * @param uuid The UUID of the PDF to render 
	 * @param duration sets the time out of the server check.
	 * @return The PNG copy of the PDF
	 */
	public byte[] getAsPNG(String uuid, int duration);
	/**
	 * Renders a previously uploaded PDF (Identified by UUID) with a PNG laid on top of it.
	 * @param uuid The UUID of the PDF to render
	 * @param overlayPNG A PNG which will be rendered on top of the PDF
	 * @return A PDF which represents the original PDF plus the PNG layer
	 */
	public byte[] getAsPDF(String uuid, byte[] overlayPNG);
}
